home *** CD-ROM | disk | FTP | other *** search
/ MACD 5 / MACD 5.bin / workbench / tools / czesc_3 / multiinstall / multiinstall.doc < prev    next >
Text File  |  1991-09-18  |  7KB  |  183 lines

  1.     -----------------------------------------------------------------------
  2.  
  3.                           MULTINSTALL VERSION 1.00
  4.  
  5.                            DATE: AUGUST 13th 1991
  6.  
  7.                          AUTHOR: Stefan G. Boldorf
  8.  
  9.     -----------------------------------------------------------------------
  10.  
  11.                                 LEGAL STUFF
  12.  
  13.     This program is in the PUBLIC DOMAIN. Anyone may copy and use both
  14.     source code and executable privately. Commercial use is permitted
  15.     only with my expressed written consent.
  16.  
  17.     This package (meaning the source, executable and manual) is provided
  18.     'AS IS' without any warranties as to its functions or safety. The user
  19.     will be responsible for all damages resulting directly or indirectly
  20.     from the use, misuse, failure to use or program faillure. I cannot
  21.     be made liable for any damage at all!
  22.  
  23.                                            Mackenbach, 20th of August 1991,
  24.                                                           Stefan G. Boldorf
  25.  
  26.     -----------------------------------------------------------------------
  27.  
  28.     CONTENTS:
  29.  
  30.     1. WHAT IS MULTIINSTALL
  31.  
  32.     2. HOW TO USE MULTIINSTALL
  33.  
  34.     3. THE SYNTAX
  35.  
  36.     4. A DEMO SCRIPT
  37.  
  38.     5. A WORD TO THE USER
  39.  
  40.     -----------------------------------------------------------------------
  41.  
  42.     1. WHAT IS MULTIINSTALL
  43.  
  44.     MultiInstall is a simple script driven program for the installation of
  45.     larger program packages.
  46.     MultiInstall executes CLI-like script files in a simple language, de-
  47.     scribed below.
  48.  
  49.     -----------------------------------------------------------------------
  50.  
  51.     2. HOW TO USE MULTIINSTALL
  52.  
  53.     MultiInstall can be started via both CLI and Workbench. From CLI a line
  54.     would look like this:
  55.  
  56.     'MultiInstall InstallMe.mil'
  57.  
  58.     The '.mil' suffix stands for 'M ulti I nstal L', of course.
  59.     The '.mil' file has to be an ASCII file.
  60.  
  61.     From Workbench MultiInstall is started by double-clicking the icon of
  62.     the script file or by clicking the script icon, holding down a SHIFT
  63.     key and double-clicking the MultiInstall icon. Clicking on the Multi-
  64.     Install icon alone causes a short message to appear, only.
  65.  
  66.     I have not tested MultiInstall a lot, so be careful. Running more than
  67.     one MultiInstall at the same time may cause problems with the DODOS
  68.     command.
  69.  
  70.     -----------------------------------------------------------------------
  71.  
  72.     3. THE SYNTAX
  73.  
  74.     MultiInstall knows 16 different commands:
  75.     Most commands need one or two parameters. A parameter is a string en-
  76.     closed in '"'s. to specify a '"' inside a parameter use '\"'. The '\'
  77.     character can be used like a normal escape character. A parameter can
  78.     hold up to 79 character, larger ones will cause an error.
  79.  
  80.     Command |                  Function            |    Syntax example    |
  81.     --------+--------------------------------------+----------------------+
  82.     MAKEDIR | Create an Amiga-DOS directory        | MAKEDIR "DF0:DRAWER" |
  83.     DELETE  | Delete an Amiga-DOS file             | DELETE "RAM:Data"    |
  84.     DODOS   | Execute an CLI-like command line     | DODOS "format df0:"  |
  85.     RENAME  | Rename an Amiga-DOS file or drawer   | RENAME "A" AS "B"    |
  86.     STORE   | Store an Amiga-DOS file in memory    | STORE "df0:A" AS "1" |
  87.     WRITE   | Write a previously stored file       | WRITE "1" AS "df1:A" |
  88.     COPY    | Copy an Amiga-DOS file               | COPY "1" AS "2"      |
  89.     FLUSH   | Free the memory of a stored file     | FLUSH "1"            |
  90.     PURGE   | Free the memory of all stored files  | PURGE                |
  91.     CLEAR   | Clear the window contents            | CLEAR                |
  92.     PRINT   | Print a text line on the window      | PRINT "Hello World"  |
  93.     ASK     | Get a YES/NO response from the user  | ASK "Really delete?" |
  94.     WAIT    | Wait for the user to click a gadget  | WAIT "Hit it!"       |
  95.     IF      | Start a if-else-end construct        | see below            |
  96.     QUIT    | Stop script execution                | QUIT                 |
  97.     EXISTS  | See if an Amiga-DOS file exists      | EXITST "df0:c/dir"   |
  98.  
  99.  
  100.     3.1. THE IF COMMAND
  101.  
  102.     The IF command starts a command-structure of the following form:
  103.  
  104.     IF <Predicate>
  105.       Commands ...     (IF-body)
  106.     ELSE
  107.       Commands ...     (ELSE-body)
  108.     END
  109.  
  110.     The <Predicate> item can be substituted by this six words:
  111.  
  112.     i.   TRUE  (IF-body will always be executed)
  113.     ii.  FALSE (IF-body will never be executed)
  114.     iii. YES (IF-body will be executed, if the user has clicked the last
  115.          ASK command with 'YES')
  116.     iv.  NO (IF-body will be executed, if the user has clicked the last
  117.          ASK command with 'NO')
  118.     v.   FAULT (IF-body will be executed, if the last EXISTS command
  119.                 was not succesful)
  120.     vi.  OK (IF-body will be executed, if the last EXISTS command
  121.                 was succesful)
  122.  
  123.     An ELSE-body-END construct does not have to appear, the END command
  124.     has. IF commands can be nested.
  125.  
  126.  
  127.     3.2 REMARKS
  128.  
  129.     Remarks can be added after a ';' to the end of the current line.
  130.  
  131.     -----------------------------------------------------------------------
  132.  
  133.     4. A DEMO SCRIPT
  134.  
  135.     This is a demo script, which has no usage, but to show you how Multi-
  136.     Install works.
  137.  
  138.     CLEAR;
  139.     PRINT "This is MULTIINSTALL"
  140.     PRINT "--------------------"
  141.     PRINT " "; MultiInstall accepts no "" empty strings
  142.     MAKEDIR "RAM:C_TMP"
  143.     DODOS "copy >NIL: SYS:C to RAM:C_TMP";
  144.     DODOS "assign C: RAM:C_TMP";
  145.     STORE "df0:Disk.info" AS "DISK_ICON";
  146.     WAIT "Insert an empty, formatted disk in drive DF0:";
  147.     WRITE "DISK_ICON" AS "DF0:Disk.info";
  148.     EXISTS "DF0:c"
  149.     IF FAULT
  150.         MAKEDIR "DF0:C";
  151.     END
  152.     DODOS "copy >NIL: RAM:C_TMP to DF0:C";
  153.     ASK "DELETE TRASHCAN ?"
  154.     IF YES
  155.       DELETE "DF0:TRASHCAN";
  156.       DELETE "DF0:TRASHCAN.INFO";
  157.     ELSE
  158.       PRINT "The trashcan remains";
  159.     END
  160.     QUIT;
  161.  
  162.     -----------------------------------------------------------------------
  163.  
  164.     5. A WORD TO THE USER
  165.  
  166.     This utility was hacked up in a couple of days, because I couldn't get
  167.     XIcon to run my installation script without a dozen disk changes.
  168.     I had the idea weeks ago, but the additional work scared me of a bit.
  169.     At last I sat down and wrote it. MultiInstall is not the best script
  170.     execution utility around, and there may be some errors in it, but it
  171.     could be the basis of a better, larger one. I thought other people
  172.     would find it useful or interesting, so I made it PUBLIC DOMAIN.
  173.     To recreate the file you need AZTEC-C 3.6a or above.
  174.  
  175.     Have fun, enjoy, CU,
  176.                                                     Stefan G. Boldorf
  177.                                                     Flürchenstraße 16
  178.                                                     W-6751 Mackenbach
  179.                                                               GERMANY
  180.  
  181.     -----------------------------------------------------------------------
  182.  
  183.